<?php

/**
 * 对$_GET,$_POST数组对象的封装
 * 
 * @author  九九
 * @date    2011.08.05
 * @version 1.0
 */
class Request {
    private $_post;
    private $_get;

    /**
     * 构造函数
     * 
     * @param null
     * @access public 
     * @return void
     */
    public function __construct() {
        $this->_post    = filterRequestData($_POST);
        $this->_get     = filterRequestData($_GET);
    }

    /**
     * 按下标得到$_GET过来的数据
     *
     * @param mix $index 下标索引
     * @access public 
     * @return mix 结果值
     */
    public function getGet($index) {
        if( true === checkEmptyButZero($index) ){
            return null;
        }
        if( isset($this->_get[$index]) ) {
            return $this->_get[$index];
        }

        return null;
    }

    /**
     * 设置$_POST的值
     *
     * @param mix $index 下标
     * @param mix $value 值
     * @access public
     * @return void 
     */
    public function setPost($index = null, $value) {
        if( $index == null ) {
            $this->_post[]          = $value;
        } else {
            $this->_post[$index]    = $value;
        }
    }

    /**
     * 按下标得到$_POST过来的数据
     *
     * @param mix $index 下标索引
     * @access public
     * @return void
     */
    public function getPost($index) {
        if( true === checkEmptyButZero($index) ){
            return null;
        }
        if( isset($this->_post[$index]) ) {
            return $this->_post[$index];
        }

        return null;
    }

    /**
     * 得到所有的$_POST过来的内
     *
     * @param null
     * @access public
     * @return array or null 
     */
    public function getPostAll() {
        return $this->_post;
    }

    /**
     * 得到所有的$_GET值
     *
     * @param null
     * @access public
     * @return array or null
     */
    public function getGetAll() {
        return $this->_get;
    }

    /**
     * 删除给定索引的$_GET数组里的元素
     *
     * @param mix $index 索引
     * @access public
     * @return null
     */
    public function delGetElement( $index ) {
        if( isset( $this->_get[$index] ) ) {
            unset ( $this->_get[$index] );
        }
    }

    /**
     * 删除给定索引的$_POST里的元素
     *
     * @param mix $index 索引值
     * @access public
     * @return void
     */
    public function delPostElement( $index ) {
        if( isset($this->_post[$index] ) ) {
            unset( $this->_post[$index] );
        }
    }
}

?>
